// monitorHeartbeat.js

const Cluster = require('../models/clusterModel') // 确保路径正确

const checkClusters = async () => {
  try {
    // 获取所有在线的集群节点
    const clusters = await Cluster.find({ onlineStatus: true })
    clusters.forEach(async cluster => {
      const timeDiff = new Date().getTime() - cluster.lastHeartbeat
      if (timeDiff > 30000) {
        // 如果时间差大于30秒
        cluster.onlineStatus = false
        await cluster.save() // 更新集群节点状态
      }
    })
    // 打印日志
    console.log('一轮心跳检测完成！')
  } catch (error) {
    console.error('检查心跳出错', error)
    // 针对错误处理逻辑
  }
}
// 定义一个对象导出 start 方法，以便启动监测
exports.start = function () {
  setInterval(checkClusters, 60000) // 每60秒执行一次
}
